---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
File ~/miniconda3/lib/python3.12/site-packages/IPython/core/formatters.py:974, in MimeBundleFormatter.__call__(self, obj, include, exclude)
971 method = get_real_method(obj, self.print_method)
973 if method is not None:
--> 974 return method(include=include, exclude=exclude)
975 return None
976 else:
File ~/miniconda3/lib/python3.12/site-packages/altair/vegalite/v5/api.py:3417, in TopLevelMixin._repr_mimebundle_(self, *args, **kwds)
3415 else:
3416 if renderer := renderers.get():
-> 3417 return renderer(dct)
File ~/miniconda3/lib/python3.12/site-packages/altair/utils/display.py:225, in HTMLRenderer.__call__(self, spec, **metadata)
223 kwargs = self.kwargs.copy()
224 kwargs.update(**metadata, output_div=self.output_div)
--> 225 return spec_to_mimebundle(spec, format="html", **kwargs)
File ~/miniconda3/lib/python3.12/site-packages/altair/utils/mimebundle.py:144, in spec_to_mimebundle(spec, format, mode, vega_version, vegaembed_version, vegalite_version, embed_options, engine, **kwargs)
134 return _spec_to_mimebundle_with_engine(
135 spec,
136 cast(Literal["png", "svg", "pdf", "vega"], format),
(...)
141 **kwargs,
142 )
143 elif format == "html":
--> 144 html = spec_to_html(
145 spec,
146 mode=internal_mode,
147 vega_version=vega_version,
148 vegaembed_version=vegaembed_version,
149 vegalite_version=vegalite_version,
150 embed_options=embed_options,
151 **kwargs,
152 )
153 return {"text/html": html}
154 elif format == "vega-lite":
File ~/miniconda3/lib/python3.12/site-packages/altair/utils/html.py:303, in spec_to_html(spec, mode, vega_version, vegaembed_version, vegalite_version, base_url, output_div, embed_options, json_kwds, fullhtml, requirejs, template)
299 msg = f"Invalid template: {jinja_template}"
300 raise ValueError(msg)
302 return jinja_template.render(
--> 303 spec=json.dumps(spec, **json_kwds),
304 embed_options=json.dumps(embed_options),
305 mode=mode,
306 vega_version=vega_version,
307 vegalite_version=vegalite_version,
308 vegaembed_version=vegaembed_version,
309 base_url=base_url,
310 output_div=output_div,
311 fullhtml=fullhtml,
312 requirejs=requirejs,
313 **render_kwargs,
314 )
File ~/miniconda3/lib/python3.12/json/__init__.py:231, in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
226 # cached encoder
227 if (not skipkeys and ensure_ascii and
228 check_circular and allow_nan and
229 cls is None and indent is None and separators is None and
230 default is None and not sort_keys and not kw):
--> 231 return _default_encoder.encode(obj)
232 if cls is None:
233 cls = JSONEncoder
File ~/miniconda3/lib/python3.12/json/encoder.py:200, in JSONEncoder.encode(self, o)
196 return encode_basestring(o)
197 # This doesn't pass the iterator directly to ''.join() because the
198 # exceptions aren't as detailed. The list call should be roughly
199 # equivalent to the PySequence_Fast that ''.join() would do.
--> 200 chunks = self.iterencode(o, _one_shot=True)
201 if not isinstance(chunks, (list, tuple)):
202 chunks = list(chunks)
File ~/miniconda3/lib/python3.12/json/encoder.py:258, in JSONEncoder.iterencode(self, o, _one_shot)
253 else:
254 _iterencode = _make_iterencode(
255 markers, self.default, _encoder, self.indent, floatstr,
256 self.key_separator, self.item_separator, self.sort_keys,
257 self.skipkeys, _one_shot)
--> 258 return _iterencode(o, 0)
File ~/miniconda3/lib/python3.12/json/encoder.py:180, in JSONEncoder.default(self, o)
161 def default(self, o):
162 """Implement this method in a subclass such that it returns
163 a serializable object for ``o``, or calls the base implementation
164 (to raise a ``TypeError``).
(...)
178
179 """
--> 180 raise TypeError(f'Object of type {o.__class__.__name__} '
181 f'is not JSON serializable')
TypeError: Object of type Interval is not JSON serializable